package com.example.iot.queue;

import com.example.iot.queue.message.RuleEngineQueueMsg;
import com.example.iot.queue.message.ProtoQueueMsg;

/**
 * @author ChenXiangpeng
 */
public interface QueueFactory {
    /**
     * 创建规则引擎专用生产者
     * @return com.example.iot.queue.QueueProducer<java.lang.Object>
     */
    QueueProducer<ProtoQueueMsg<RuleEngineQueueMsg>> createRuleEngineProducer();

    /**
     * 创建规则引擎专用消费者
     * @return com.example.iot.queue.QueueProducer<com.example.iot.queue.message.ProtoQueueMsg<com.example.iot.queue.message.CommonQueueMsg>>
     */
    QueueConsumer<ProtoQueueMsg<RuleEngineQueueMsg>> createRuleEngineConsumer();
}
